#pragma once

#include <vulkan/vulkan.hpp>

//store the rectangle widget's pipeline
struct SRectWidgetPipeline
{
    vk::PipelineLayout PipelineLayout;
    vk::Pipeline Pipeline;

    //pipeline for drawing the radius corner of the rectangle
    vk::Pipeline LeftTopCornerPipeline;
    vk::Pipeline RightTopCornerPipeline;
    vk::Pipeline LeftBottomCornerPipeline;
    vk::Pipeline RightBottomCornerPipeline;

    //pipeline for drawing the radius corner of the rectangle border
    vk::Pipeline LeftTopCornerBorderPipeline;
    vk::Pipeline RightTopCornerBorderPipeline;
    vk::Pipeline LeftBottomCornerBorderPipeline;
    vk::Pipeline RightBottomCornerBorderPipeline;

    void Init();
  
protected:
    void CreatePipelineLayout();
    void CreatePipeline();

};